For complex logic processing, commercial business rule engines provide many advantages over traditional procedural based programming languages. These advantages include externalization of business logic and rule transparency. However, for complex logic processing, the end-user often must determine how the final conclusions are made in order to be confident of the results. Most commercial business rule engines only support forward-chaining (FC) reasoning, which does not provide explanation capabilities that are naturally supported by backward-chaining rule engines. Explanation capability is an important capability for rule-based expert systems and helps users understand why a conclusion is made. A typical use case is when a system carries a conversation with an end user and the user can ask “Why” and “How” questions at any stage. “Why” displays the rules under consideration and “how” searches the history tree and displays the rules and data leading to the current solution. The lack of easy-to-use explanation capability often hinders the acceptance of the rule based solutions.
Forward-chaining rule engines begin with existing facts and identify all rules with conditions that are satisfied. The engine then executes the consequence or action part of the rules which results in the modification, deletion, or creation of new facts. This in turn could cause more rules to be satisfied, and consequently trigger their execution. This process continues until no more rules are satisfied and the decision or result is reached. Often, when multiple rules are involved in multi-step reasoning, the chain of cause and effect relationships is not obvious from the conclusion alone.
Inference back-track capability is not provided in mainstream business rule engine products because of the difficulty of performing such a function with forward-chaining rule engines. This is due to the fact that forward chaining rule engines are data driven, which means forward chaining starts with the available data and uses inference rules to generate more data until an optimal goal is reached. An inference engine using forward chaining searches the rules until it finds one where the antecedent (If clause) is known to be true. When found, it concludes the consequent (Then clause), resulting in the addition of new information to its data. In contrast, backward chaining starts with a list of goals (or a hypothesis) and works backwards from the consequent to the antecedent to see if there is data available that will support any of these consequents. An inference engine using backward chaining would search the rules until it finds one which has a consequent (Then clause) that matches a desired goal. If the antecedent (If clause) of that rule is not known to be true when evaluated against available data, then it is added to the list of goals. This process is often called goal seeking. As a result, backward chaining rule engines provide a natural way to explain why and how a conclusion is made, whereas it is not easy to do so in forward chaining rule engines.
Thus, there is a need in the art for a method of analyzing business rule engines and providing visual presentations showing facts, rules and reasoning paths leading to a conclusion.